#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

int main()
{

  pthread_attr_t attr; // 线程属性
  pthread_t tid;       // 线程ID
  int ret;
  ret = pthread_attr_init(&attr); // 初始化
  if (ret != 0)
  {
    printf("pthread_attr_init error:%s\n", strerror(ret));
    exit(1);
  }
  ret = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); // 设置分离状态
  if (ret != 0)
  {
    printf("pthread_attr_setdetachstate error:%s\n", strerror(ret));
    exit(1);
  }
  ret = pthread_create(&tid, &attr, (void *)sleep, (void *)5); // 创建线程,让其睡眠5秒
  if (ret != 0)
  {
    printf("pthread_create error:%s\n", strerror(ret));
    exit(1);
  }

  // 测试是否是分离线程
  ret = pthread_join(tid, NULL);
  if (ret != 0)
  {
    printf("pthread_join error:%s\n", strerror(ret));
    exit(1);
  }

  pthread_attr_destroy(&attr); // 销毁

  return 0;
}